import requests  # 导入requests包
import re
import os
import urllib


# 网页请求的方式也分为两种：
# GET：最常见的方式，一般用于获取或者查询资源信息，也是大多数网站使用的方式，响应速度快。
# POST：相比 GET 方式，多了以表单形式上传参数的功能，因此除查询信息外，还可以修改信息。
# 所以，在写爬虫前要先确定向谁发送请求，用什么方式发送。


# get抓取旅游新闻网
# url = 'http://www.ctnews.com.cn/'
# strhtml = requests.get(url)  # Get方式获取网页数据
# strhtml.encoding = "utf-8"
# print(strhtml.text)

def get_html(url):
    # page = urllib.request.urlopen(url)s
    # html_a = page.read()
    # return html_a.decode('utf-8')
    strhtml = requests.get(url)  # Get方式获取网页数据
    strhtml.encoding = "utf-8"
    return strhtml.text


def get_img(html):
    reg = r'https://[^\s]*?\.jpg'  # 看图片过滤的 http还是 https ,还可以过滤
    imgre = re.compile(reg)  # 转换成一个正则对象
    imglist = imgre.findall(html)  # 表示在整个网页过滤出所有图片的地址，放在imgList中
    x = 0  # 声明一个变量赋值
    path = 'G:\\python案例\\mypic\\天涯明月刀'  # 设置图片的保存地址
    if not os.path.isdir(path):
        os.makedirs(path)  # 判断没有此路径则创建
    paths = path + '\\'  # 保存在test路径下
    for imgurl in imglist:
        urllib.request.urlretrieve(imgurl, '{0}{1}.jpg'.format(paths, x))  # 打开imgList,下载图片到本地
        x = x + 1
        print('图片开始下载，注意查看文件夹')
        if x == 30:
            break
    return imglist


# html_b = get_html("https://tieba.baidu.com/p/6055320747")  # 获取该网页的详细信息
# html_b = get_html("https://tieba.baidu.com/p/6415386601")  # 获取该网页的详细信息 笑傲江湖
html_b = get_html("https://tieba.baidu.com/p/6339173863")  # 获取该网页的详细信息 天涯明月刀
print(get_img(html_b))  # 从网页源代码中分析下载保存图片
